package com.surge;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class SurgeMain {

	private static ApplicationContext ctx;

	public static void main(String[] args) {
		
		/*
		 * 泛型注入
		 * 很重要，可以 简写很多代码，不需要每个service、repository中都写注解注入了。
		 * 但是这样就不是面向接口编程了？ 为什么要这么做呢？小项目？
		 * 
		 * 注入代码都在base中写，使用时，会自动通过泛型类型 T 来判断注入对应的属性
		 * 
		 */
		
		// 创建 Spring 的 IOC 容器
		ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
		
		UserService userService =  (UserService) ctx.getBean("userService");
		
		System.out.println(userService);
		
		userService.add();
		
		/*
		 *  com.surge.UserService@4fcd19b3
			add......    						// 这个是baseService中的
			com.surge.UserRepository@376b4233   // 在service中注入了 UserRepository
		 */
		
	}

}
